home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / ccas01.arc / IO.ASM < prev    next >
Encoding:
Assembly Source File  |  1986-03-15  |  1.1 KB  |  68 lines

  1.     TITLE    PORT I/O FUNCTIONS
  2.     SUBTTL    Copyright 1982 by Lattice, Inc.
  3.     NAME    PORTIO
  4.     INCLUDE    DOS.MAC
  5.  
  6.     IF    LPROG
  7. X    EQU    6        ;OFFSET OF ARGUMENTS
  8.     ELSE
  9. X    EQU    4        ;OFFSET OF ARGUMENTS
  10.     ENDIF
  11.  
  12.     PSEG
  13. ;**
  14. ;
  15. ; name        inp -- input byte from port
  16. ;
  17. ; synopsis    c = inp(port);
  18. ;        int c;        returned byte
  19. ;        int port;    port address
  20. ;
  21. ; description    This function inputs a byte from the specified port
  22. ;        address and returns it as the function value.
  23. ;
  24. ;**
  25.     PUBLIC    INP
  26.     IF    LPROG
  27. INP    PROC    FAR
  28.     ELSE
  29. INP    PROC    NEAR
  30.     ENDIF
  31.     PUSH    BP        ;SAVE BP
  32.     MOV    BP,SP
  33.     MOV    DX,[BP+X]    ;GET PORT ADDRESS
  34.     IN    AL,DX        ;GET INPUT BYTE
  35.     XOR    AH,AH        ;CLEAR HIGH BYTE
  36.     POP    BP
  37.     RET
  38. INP    ENDP
  39.     PAGE
  40. ;**
  41. ;
  42. ; name        outp -- output byte to port
  43. ;
  44. ; synopsis    outp(port,c);
  45. ;        int port;    port address
  46. ;        int c;        byte to send
  47. ;
  48. ; description    This function sends the specified character to
  49. ;        the specified port.
  50. ;
  51. ;**
  52.     PUBLIC    OUTP
  53.     IF    LPROG
  54. OUTP    PROC    FAR
  55.     ELSE
  56. OUTP    PROC    NEAR
  57.     ENDIF
  58.     PUSH    BP        ;SAVE BP
  59.     MOV    BP,SP
  60.     MOV    DX,[BP+X]    ;GET PORT ADDRESS
  61.     MOV    AX,[BP+X+2]    ;GET OUTPUT BYTE
  62.     OUT    DX,AL
  63.     POP    BP
  64.     RET
  65. OUTP    ENDP
  66.     ENDPS    
  67.     END
  68.